package com.jz.netthings.netty.support;

import com.jz.netthings.netty.protocol.BasePacket;
import com.jz.netthings.netty.protocol.bean.ZxdcMsgPacket;
import io.netty.channel.ChannelHandlerContext;
import org.springframework.stereotype.Component;

/**
 * 服务端处理消息提供接口
 */

public interface ServerHandlerSupport {

    /**
     * 处理请求包的接口
     * @param soursePacket
     * @return
     */
    public BasePacket handlePacket(BasePacket soursePacket);
    /**
     * 处理平板端的请求包的接口
     * @param soursePacket
     * @return
     */
    public ZxdcMsgPacket handleChairPacket(ZxdcMsgPacket soursePacket);

    /**
     * 清除Redis中的对象
     * @param key
     */
    void cleanRedisObj(String key) throws Exception;


    /**
     * 连接断开的时候，更新缓存中的浆机状态
     * @param ctx
     * @throws Exception
     */
    void freeMachineData(ChannelHandlerContext ctx) throws Exception;

    /**
     * 解析单采机上传上来的DB文件
     * @param oldFileName 上传上来的原始文件名
     * @param newFilePath 此文件保存的新的文件路径
     * @throws Exception
     */
    void doAnalysisZxdcDB(String oldFileName,String newFilePath) throws Exception;
}
